package com.study.mybatisplus.entity;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;

/**
 * <p>
 * 金币充值
 * </p>
 *
 * @author flwu
 * @since 2020-03-20
 */
@TableName("tbl_recharge")
public class Recharge implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 充值编号
     */
    private String number;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 用户余额快照
     */
    private Long userCoin;

    /**
     * 金币套餐ID
     */
    private Long coinId;

    /**
     * 金币原始数量
     */
    private Long originCoin;

    /**
     * 金币数量
     */
    private Long coin;

    /**
     * 价格
     */
    private BigDecimal price;

    /**
     * 设备平台
     */
    private String channel;

    /**
     * 充值状态，1：待支付；2：已完成
     */
    private Boolean status;

    /**
     * 备注（理由）
     */
    private String remark;

    /**
     * 支付状态 1:待支付 2:已支付 3:退款中 4:已退款
     */
    private Boolean payStatus;

    /**
     * 支付方式 1:微信 2:苹果内购 3:支付宝；4：人工充值
     */
    private Boolean payType;

    /**
     * 支付完成时间
     */
    private LocalDateTime payFinishedDatetime;

    /**
     * 创建时间
     */
    private LocalDateTime createDatetime;

    /**
     * 最后更新时间
     */
    private LocalDateTime updateDatetime;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }
    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }
    public Long getUserCoin() {
        return userCoin;
    }

    public void setUserCoin(Long userCoin) {
        this.userCoin = userCoin;
    }
    public Long getCoinId() {
        return coinId;
    }

    public void setCoinId(Long coinId) {
        this.coinId = coinId;
    }
    public Long getOriginCoin() {
        return originCoin;
    }

    public void setOriginCoin(Long originCoin) {
        this.originCoin = originCoin;
    }
    public Long getCoin() {
        return coin;
    }

    public void setCoin(Long coin) {
        this.coin = coin;
    }
    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }
    public String getChannel() {
        return channel;
    }

    public void setChannel(String channel) {
        this.channel = channel;
    }
    public Boolean getStatus() {
        return status;
    }

    public void setStatus(Boolean status) {
        this.status = status;
    }
    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }
    public Boolean getPayStatus() {
        return payStatus;
    }

    public void setPayStatus(Boolean payStatus) {
        this.payStatus = payStatus;
    }
    public Boolean getPayType() {
        return payType;
    }

    public void setPayType(Boolean payType) {
        this.payType = payType;
    }
    public LocalDateTime getPayFinishedDatetime() {
        return payFinishedDatetime;
    }

    public void setPayFinishedDatetime(LocalDateTime payFinishedDatetime) {
        this.payFinishedDatetime = payFinishedDatetime;
    }
    public LocalDateTime getCreateDatetime() {
        return createDatetime;
    }

    public void setCreateDatetime(LocalDateTime createDatetime) {
        this.createDatetime = createDatetime;
    }
    public LocalDateTime getUpdateDatetime() {
        return updateDatetime;
    }

    public void setUpdateDatetime(LocalDateTime updateDatetime) {
        this.updateDatetime = updateDatetime;
    }

    @Override
    public String toString() {
        return "Recharge{" +
            "id=" + id +
            ", number=" + number +
            ", userId=" + userId +
            ", userCoin=" + userCoin +
            ", coinId=" + coinId +
            ", originCoin=" + originCoin +
            ", coin=" + coin +
            ", price=" + price +
            ", channel=" + channel +
            ", status=" + status +
            ", remark=" + remark +
            ", payStatus=" + payStatus +
            ", payType=" + payType +
            ", payFinishedDatetime=" + payFinishedDatetime +
            ", createDatetime=" + createDatetime +
            ", updateDatetime=" + updateDatetime +
        "}";
    }
}
